/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;

import org.mybeans.ComerciosMorosidadSQL;
import org.mybeans.ComerciosBeans;
import org.mybeans.CierreMensualBeans;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
  
/**
 *
 * @author avbravo
 */
public class MorosidadBeans {

    double TotalMorosidad = 0.0;
    Sesion sesion;
    ContribuyentesMorosidadSQL contribuyentesMorosidadSQL;
    ComerciosMorosidadSQL comerciosMorosidadSQL;
    RemolquesMorosidadSQL remolquesMorosidadSQL;
    VehiculosMorosidadSQL vehiculosMorosidadSQL;
    CierreMensualBeans cierreMensualBeans;
    ContribuyentesBeans contribuyentesBeans;
    ComerciosBeans comerciosBeans;
    MorosidadMensualBeans morosidadMensualBeans;
    RecargoMensualBeans recargoMensualBeans;
    VigenciasExpiradasBeans vigenciasExpiradasBeans;
    private int AnioActual;
    String Id;
    String localId;
    String TipoId;
    String sql, sqlAnual;
    String rowIdRegimen;
    String rowRegimen;
    double rowMorosidad;
    String rowEstatus;
    String rowComentario;
    int rowMesesMorosos = 0;
    int Anio;
    String Mes;
    String IdMunicipio;
    static private int NumeroRegistrosLista = -1;
    static List<String> ListaIdRegimen = new ArrayList<String>();
    static List<String> ListaRegimen = new ArrayList<String>();
    static List<Double> ListaMorosidad = new ArrayList<Double>();
    static List<String> ListaEstatus = new ArrayList<String>();
    static List<String> ListaComentario = new ArrayList<String>();
    static List<Integer> ListaMesesMorosos = new ArrayList<Integer>();
    private int tmpNumeroRegistrosLista = -1;
    List<String> tmpListaId = new ArrayList<String>();
    List<String> tmpListaTipoId = new ArrayList<String>();
    List<String> tmpListaIdRegimen = new ArrayList<String>();
    List<String> tmpListaRegimen = new ArrayList<String>();
    List<Double> tmpListaMorosidad = new ArrayList<Double>();
    List<String> tmpMoroso = new ArrayList<String>();
    List<String> tmpListaEstatus = new ArrayList<String>();

    public MorosidadBeans() {

        contribuyentesMorosidadSQL = new ContribuyentesMorosidadSQL();
        comerciosMorosidadSQL = new ComerciosMorosidadSQL();
        remolquesMorosidadSQL = new RemolquesMorosidadSQL();
        vehiculosMorosidadSQL = new VehiculosMorosidadSQL();
        cierreMensualBeans = new CierreMensualBeans();
        contribuyentesBeans = new ContribuyentesBeans();
        comerciosBeans = new ComerciosBeans();

        morosidadMensualBeans = new MorosidadMensualBeans();
        recargoMensualBeans = new RecargoMensualBeans();
        sesion = new Sesion();
        vigenciasExpiradasBeans = new VigenciasExpiradasBeans();

        java.util.Calendar ca = java.util.Calendar.getInstance();
        java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());

        this.AnioActual = ca.get(java.util.Calendar.YEAR) ;

        this.TotalMorosidad = 0.0;
        this.IdMunicipio = sesion.getIdmunicipio();
    }

    public List<String> getTmpListaEstatus() {
        return tmpListaEstatus;
    }

    public void setTmpListaEstatus(List<String> tmpListaEstatus) {
        this.tmpListaEstatus = tmpListaEstatus;
    }

    public List<String> getTmpListaId() {
        return tmpListaId;
    }

    public void setTmpListaId(List<String> tmpListaId) {
        this.tmpListaId = tmpListaId;
    }

    public List<String> getTmpListaIdRegimen() {
        return tmpListaIdRegimen;
    }

    public void setTmpListaIdRegimen(List<String> tmpListaIdRegimen) {
        this.tmpListaIdRegimen = tmpListaIdRegimen;
    }

    public List<Double> getTmpListaMorosidad() {
        return tmpListaMorosidad;
    }

    public void setTmpListaMorosidad(List<Double> tmpListaMorosidad) {
        this.tmpListaMorosidad = tmpListaMorosidad;
    }

    public List<String> getTmpListaRegimen() {
        return tmpListaRegimen;
    }

    public void setTmpListaRegimen(List<String> tmpListaRegimen) {
        this.tmpListaRegimen = tmpListaRegimen;
    }

    public List<String> getTmpListaTipoId() {
        return tmpListaTipoId;
    }

    public void setTmpListaTipoId(List<String> tmpListaTipoId) {
        this.tmpListaTipoId = tmpListaTipoId;
    }

    public List<String> getTmpMoroso() {
        return tmpMoroso;
    }

    public void setTmpMoroso(List<String> tmpMoroso) {
        this.tmpMoroso = tmpMoroso;
    }

    public int getTmpNumeroRegistrosLista() {
        return tmpNumeroRegistrosLista;
    }

    public void setTmpNumeroRegistrosLista(int tmpNumeroRegistrosLista) {
        this.tmpNumeroRegistrosLista = tmpNumeroRegistrosLista;
    }

    public int getAnio() {
        return Anio;
    }

    public void setAnio(int Anio) {
        this.Anio = Anio;
    }

    public String getMes() {
        return Mes;
    }

    public void setMes(String Mes) {
        this.Mes = Mes.toLowerCase();
    }

    public static List<Integer> getListaMesesMorosos() {
        return ListaMesesMorosos;
    }

    public static void setListaMesesMorosos(List<Integer> ListaMesesMorosos) {
        MorosidadBeans.ListaMesesMorosos = ListaMesesMorosos;
    }

    public static List<String> getListaComentario() {
        return ListaComentario;
    }

    public static void setListaComentario(List<String> ListaComentario) {
        MorosidadBeans.ListaComentario = ListaComentario;
    }

    public static List<String> getListaEstatus() {
        return ListaEstatus;
    }

    public static void setListaEstatus(List<String> ListaEstatus) {
        MorosidadBeans.ListaEstatus = ListaEstatus;
    }

    public static List<String> getListaIdRegimen() {
        return ListaIdRegimen;
    }

    public static void setListaIdRegimen(List<String> ListaIdRegimen) {
        MorosidadBeans.ListaIdRegimen = ListaIdRegimen;
    }

    public static List<Double> getListaMorosidad() {
        return ListaMorosidad;
    }

    public static void setListaMorosidad(List<Double> ListaMorosidad) {
        MorosidadBeans.ListaMorosidad = ListaMorosidad;
    }

    public static List<String> getListaRegimen() {
        return ListaRegimen;
    }

    public static void setListaRegimen(List<String> ListaRegimen) {
        MorosidadBeans.ListaRegimen = ListaRegimen;
    }

    public static int getNumeroRegistrosLista() {
        return NumeroRegistrosLista;
    }

    public static void setNumeroRegistrosLista(int NumeroRegistrosLista) {
        MorosidadBeans.NumeroRegistrosLista = NumeroRegistrosLista;
    }

    public double getTotalMorosidad() {
        return TotalMorosidad;
    }

    public void setTotalMorosidad(double TotalMorosidad) {
        this.TotalMorosidad = TotalMorosidad;
    }

    /*
     * ComprobarDependencias == true indica que se debe comprobar la morosidad los vehiculos y remolques que tiene
     * ComprobarDependencias == false (no comprueba morosidad los remolques y vehiculos)
     */
    @SuppressWarnings("static-access")
    public void VerificarMorosidad(String id, String tipoId, boolean ComprobarPertenencias) {
        try {
            this.Id = id;
            this.TipoId = tipoId;
            this.TipoId = this.TipoId.trim();
            NumeroRegistrosLista = -1;
            this.TotalMorosidad = 0.0;
            RemoverElementosLista();
            tmpNumeroRegistrosLista = -1;
            RemoverElementosListaTemporal();
            /*
             *
             *buscar la morosidad 
             */
            ComprobarMorosidad(this.Id, this.TipoId);
            ComprobarRecargos(this.Id, this.TipoId);
            ComprobarVigencias(this.Id, this.TipoId);
            ComprobarMorosidadImpuestosAnuales(Id, TipoId);

            if (TipoId.equals("contribuyentes") && ComprobarPertenencias == true) {
                contribuyentesBeans.CargarVehiculosContribuyentes(this.Id);
                if (contribuyentesBeans.getNumeroRegistrosVehiculosPosee() != -1) {
                    for (int i = 0; i <= contribuyentesBeans.getNumeroRegistrosVehiculosPosee(); i++) {
                        int idVehiculo = contribuyentesBeans.getListaIdVehiculo().get(i);
                        String sIdVehiculo = String.valueOf(idVehiculo);
                        sIdVehiculo = sIdVehiculo.trim();
                        ComprobarMorosidad(sIdVehiculo, "vehiculos");
                        ComprobarRecargos(sIdVehiculo, "vehiculos");
                        ComprobarVigencias(sIdVehiculo, "vehiculos");
                        ComprobarMorosidadImpuestosAnuales(sIdVehiculo, TipoId);
                    }
                }

                contribuyentesBeans.CargarRemolquesContribuyentes(this.Id);
                if (contribuyentesBeans.getNumeroRegistrosRemolquesPosee() != -1) {
                    for (int i = 0; i <= contribuyentesBeans.getNumeroRegistrosRemolquesPosee(); i++) {
                        int nIdRemolque = contribuyentesBeans.getListaIdRemolque().get(i);
                        String IdRemolque = String.valueOf(nIdRemolque);
                        IdRemolque = IdRemolque.trim();

                        IdRemolque = IdRemolque.trim();
                        ComprobarMorosidad(IdRemolque, "remolques");
                        ComprobarRecargos(IdRemolque, "remolques");
                        ComprobarVigencias(IdRemolque, "remolques");
                        ComprobarMorosidadImpuestosAnuales(IdRemolque, TipoId);
                    }
                }
            } else {
                if (TipoId.equals("comercios") && ComprobarPertenencias == true) {
                    comerciosBeans.CargarVehiculosComercios(this.Id);
                    if (comerciosBeans.getNumeroRegistrosVehiculosPosee() != -1) {
                        for (int i = 0; i <= comerciosBeans.getNumeroRegistrosVehiculosPosee(); i++) {
                            int idVehiculo = comerciosBeans.getListaIdVehiculo().get(i);
                            String sIdVehiculo = String.valueOf(idVehiculo);
                            sIdVehiculo = sIdVehiculo.trim();
                            ComprobarMorosidad(sIdVehiculo, "vehiculos");
                            ComprobarRecargos(sIdVehiculo, "vehiculos");
                            ComprobarVigencias(sIdVehiculo, "vehiculos");
                            ComprobarMorosidadImpuestosAnuales(sIdVehiculo, TipoId);
                        }

                    }
                    comerciosBeans.CargarRemolquesComercios(this.Id);
                    if (comerciosBeans.getNumeroRegistrosRemolquesPosee() != -1) {
                        for (int i = 0; i <= comerciosBeans.getNumeroRegistrosRemolquesPosee(); i++) {
                            int nIdRemolque = comerciosBeans.getListaIdRemolque().get(i);
                            String IdRemolque = String.valueOf(nIdRemolque);
                            IdRemolque = IdRemolque.trim();
                            IdRemolque = IdRemolque.trim();
                            ComprobarMorosidad(IdRemolque, "remolques");
                            ComprobarRecargos(IdRemolque, "remolques");
                            ComprobarVigencias(IdRemolque, "remolques");
                            ComprobarMorosidadImpuestosAnuales(IdRemolque, TipoId);
                        }
                    }
                }
            }

        } catch (Exception ex) {

            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nVerificarMorosidad()\n " + ex.getMessage().toString());
        }

    }

    /*
     * carga la morosidad,. esta funcion se llama cuando no
     * tiene impuestos y a lo mejor solo le queda pendiente
     * la morosidad
     */
    @SuppressWarnings("static-access")
    private void CargarSoloMorosidad(String lTipoId) {
        try {
            String tipo = "morosidad";
            for (int m = 0; m <= morosidadMensualBeans.getNumeroRegistrosLista(); m++) {
                String idRegimenMorosidad = morosidadMensualBeans.getListaIdRegimen().get(m);
                double SaldoMorosidad = morosidadMensualBeans.getListaSaldoActual().get(m);
                rowIdRegimen = idRegimenMorosidad;
                rowRegimen = morosidadMensualBeans.getListaRegimen().get(m);
                rowMorosidad = SaldoMorosidad;
                rowEstatus = "morosidad";
                rowComentario = lTipoId;
                rowMesesMorosos = morosidadMensualBeans.getListaNumeroMes().get(m);
                AgregarFila();
            }//for

        } catch (Exception ex) {
            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nCargarSoloMorosidad()\n " + ex.getMessage().toString());
        }
    }

    /*
     * carga el recargo
     */
    private void CargarSoloRecargo(String lTipoId) {
        try {
            String tipo = "recargo";
            for (int m = 0; m <= recargoMensualBeans.getNumeroRegistrosLista(); m++) {
                String idRegimenRecargo = recargoMensualBeans.getListaIdRegimen().get(m);
                double Recargo = recargoMensualBeans.getListaRecargoActual().get(m);
                rowIdRegimen = idRegimenRecargo;
                rowRegimen = recargoMensualBeans.getListaRegimen().get(m);
                rowMorosidad = Recargo;

                rowEstatus = "recargo";
                rowComentario = lTipoId;
                rowMesesMorosos = 0; //es recargo
                AgregarFila();
            }//for

        } catch (Exception ex) {
            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nBoton Imprimir()\n " + ex.getMessage().toString());
        }
    }

    /*
     * carga la vigencia expirada
     */
    private void CargarSoloVigenciasExpiradas(String lTipoId) {
        try {
            String tipo = "vigenciasexpiradas";
            for (int m = 0; m <= vigenciasExpiradasBeans.getNumeroRegistrosLista(); m++) {
                String idRegimenRecargo = vigenciasExpiradasBeans.getListaIdRegimen().get(m);
                double SaldoActual = vigenciasExpiradasBeans.getListaMorosidadActual().get(m);
                rowIdRegimen = idRegimenRecargo;
                rowRegimen = vigenciasExpiradasBeans.getListaRegimen().get(m);
                rowMorosidad = SaldoActual;

                rowEstatus = "vigencias expiradas";
                rowComentario = lTipoId;
                rowMesesMorosos = 0; //vigencias
                AgregarFila();
            }//for

        } catch (Exception ex) {
            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nCargarSoloVigenciasExpiradas()\n " + ex.getMessage().toString());
        }
    }

    private void AgregarFila() {
        NumeroRegistrosLista++;
        ListaIdRegimen.add(rowIdRegimen);
        ListaRegimen.add(rowRegimen);
        ListaMorosidad.add(rowMorosidad);
        ListaEstatus.add(rowEstatus);
        ListaComentario.add(rowComentario);
        ListaMesesMorosos.add(rowMesesMorosos);
        this.TotalMorosidad += rowMorosidad;
    }

    private void RemoverElementosLista() {

        ListaIdRegimen.removeAll(ListaIdRegimen);
        ListaRegimen.removeAll(ListaRegimen);
        ListaMorosidad.removeAll(ListaMorosidad);
        ListaEstatus.removeAll(ListaEstatus);
        ListaComentario.removeAll(ListaComentario);
        ListaMesesMorosos.removeAll(ListaMesesMorosos);
    }

    private void ComprobarMorosidad(String lId, String lTipoId) {
        try {
            this.sql = "select morosidadmensual.*, regimen.regimen "
                    + "from morosidadmensual, regimen "
                    + " where morosidadmensual.idmunicipio ='" + sesion.getIdmunicipio() + "'"
                    + " and  morosidadmensual.id ='" + lId + "'"
                    + " and  morosidadmensual.tipoid ='" + lTipoId + "'"
                    + " and  morosidadmensual.anio='" + this.AnioActual + "'"
                    + " and  morosidadmensual.idmunicipio = regimen.idmunicipio "
                    + " and  morosidadmensual.idregimen = regimen.idregimen  "
                    + " and  morosidadmensual.saldoactual > 0.0 "
                    + " and regimen.activo='si'";
            if(lId.equalsIgnoreCase("705")){
                System.out.println("comprobar morosidad "+sql);
            }
            System.out.println("");
            morosidadMensualBeans.CargarListadoMorosidadMensual(this.sql);
            if (morosidadMensualBeans.getNumeroRegistrosLista() != - 1) {
                CargarSoloMorosidad(lTipoId);
            }
        } catch (Exception ex) {

            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nVerificarMorosidad()\n " + ex.getMessage().toString());
        }
    }

    private void ComprobarRecargos(String lId, String lTipoId) {
        try {
            /*
             *
             *Cargar los recargos mensuales
             */
            this.sql = "select recargomensual.*, regimen.regimen "
                    + "from recargomensual, regimen "
                    + " where recargomensual.idmunicipio ='" + sesion.getIdmunicipio() + "'"
                    + " and  recargomensual.id ='" + lId + "'"
                    + " and  recargomensual.tipoid ='" + lTipoId + "'"
                    + " and  recargomensual.anio='" + this.AnioActual + "'"
                    + " and  recargomensual.recargoactual > 0 and  recargomensual.idmunicipio = regimen.idmunicipio "
                    + " and  recargomensual.idregimen = regimen.idregimen  "
                    + " and  regimen.activo='si'";
            recargoMensualBeans.CargarListadoRecargoMensual(this.sql);
            if (recargoMensualBeans.getNumeroRegistrosLista() != - 1) {
                CargarSoloRecargo(lTipoId);
            }
        } catch (Exception ex) {

            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nVerificarRecargos()\n " + ex.getMessage().toString());
        }
    }

    private void ComprobarVigencias(String lId, String lTipoId) {
        try {
            /*
             *cargar la vigencias expiradas actuales
             *
             */
            this.sql = "select vigenciasexpiradas.*, regimen.regimen "
                    + "from vigenciasexpiradas, regimen "
                    + " where vigenciasexpiradas.idmunicipio ='" + sesion.getIdmunicipio() + "'"
                    + " and  vigenciasexpiradas.id ='" + lId + "'"
                    + " and  vigenciasexpiradas.tipoid ='" + lTipoId + "'"
                    + " and  vigenciasexpiradas.anio='" + this.AnioActual + "'"
                    + " and  vigenciasexpiradas.morosidadactual > '0.0' "
                    + " and  vigenciasexpiradas.idmunicipio = regimen.idmunicipio "
                    + " and  vigenciasexpiradas.idregimen = regimen.idregimen  "
                    + " and  regimen.activo='si'";

            vigenciasExpiradasBeans.CargarListadoVigenciaActual(sql);

            if (vigenciasExpiradasBeans.getNumeroRegistrosLista() != - 1) {
                CargarSoloVigenciasExpiradas(lTipoId);
            }


        } catch (Exception ex) {

            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nVerificarVigencias()\n " + ex.getMessage().toString());
        }
    }

    private void ComprobarMorosidadImpuestosAnuales(String lId, String lTipoId) {
        try {
            this.localId = lId;

            this.sqlAnual = "";
            if (lTipoId.equals("contribuyentes")) {
                Contribuyentes();

            } else {
                if (lTipoId.equals("comercios")) {
                    Comercios();
                } else {
                    if (lTipoId.equals("vehiculos")) {
                        Vehiculos();
                    } else {
                        if (lTipoId.equals("remolques")) {
                            Remolques();
                        }
                    }
                }
            }


            sqlAnual = sqlAnual.trim();
            if (sqlAnual.equals("")) {
            } else {
                CargarTemporalListas(lId, lTipoId);
            }
        } catch (Exception ex) {

            sesion.MostrarMensajeError("Error ", "Clase: MorosidadBeans.java\nComprobarMorosidadImpuestosAnuales()\n " + ex.getMessage().toString());
        }
    }

    @SuppressWarnings("static-access")
    private void Contribuyentes() {
        try {
            contribuyentesMorosidadSQL.setId(this.localId);
            contribuyentesMorosidadSQL.setSql("");
            contribuyentesMorosidadSQL.setMes(Mes);
            contribuyentesMorosidadSQL.setIdMunicipio(sesion.getIdmunicipio());
            contribuyentesMorosidadSQL.setAnio(Anio);

            if (cierreMensualBeans.VerificarExiste(Anio, Mes)) {
                this.sqlAnual = contribuyentesMorosidadSQL.ContribuyentesMesCerrado();
            } else {
                this.sqlAnual = contribuyentesMorosidadSQL.ContribuyentesMesSinCerrar();
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Contribuyentes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

    private void Comercios() {
        try {
            comerciosMorosidadSQL.setId(this.localId);
            comerciosMorosidadSQL.setSql("");
            comerciosMorosidadSQL.setMes(Mes);
            comerciosMorosidadSQL.setIdMunicipio(sesion.getIdmunicipio());
            comerciosMorosidadSQL.setAnio(Anio);
            if (cierreMensualBeans.VerificarExiste(Anio, Mes)) {
                this.sqlAnual = comerciosMorosidadSQL.ComerciosMesCerrado();
            } else {
                this.sqlAnual = comerciosMorosidadSQL.ComerciosMesSinCerrar();
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Contribuyentes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

    @SuppressWarnings("static-access")
    private void Remolques() {
        try {
            remolquesMorosidadSQL.setId(this.localId);
            remolquesMorosidadSQL.setMes(Mes);
            remolquesMorosidadSQL.setIdMunicipio(sesion.getIdmunicipio());
            remolquesMorosidadSQL.setAnio(Anio);
            remolquesMorosidadSQL.setSql("");

            if (cierreMensualBeans.VerificarExiste(Anio, Mes)) {

                this.sqlAnual = remolquesMorosidadSQL.RemolquesMesCerrado();

            } else {

                this.sqlAnual = remolquesMorosidadSQL.RemolquesMesSinCerrar();


            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Contribuyentes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

    @SuppressWarnings("static-access")
    private void Vehiculos() {
        try {
            vehiculosMorosidadSQL.setId(this.localId);
            vehiculosMorosidadSQL.setMes(Mes);
            vehiculosMorosidadSQL.setIdMunicipio(sesion.getIdmunicipio());
            vehiculosMorosidadSQL.setAnio(Anio);
            vehiculosMorosidadSQL.setSql("");

            if (cierreMensualBeans.VerificarExiste(Anio, Mes)) {

                this.sqlAnual = vehiculosMorosidadSQL.VehiculosMesCerrado();

            } else {

                this.sqlAnual = vehiculosMorosidadSQL.VehiculosMesSinCerrar();


            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Contribuyentes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

    private void RemoverElementosListaTemporal() {
        tmpListaId.removeAll(tmpListaId);
        tmpListaTipoId.removeAll(tmpListaTipoId);
        tmpListaIdRegimen.removeAll(tmpListaIdRegimen);
        tmpListaRegimen.removeAll(tmpListaRegimen);
        tmpListaMorosidad.removeAll(tmpListaMorosidad);
        tmpMoroso.removeAll(tmpMoroso);
        tmpListaEstatus.removeAll(tmpListaEstatus);

    }

    public boolean CargarTemporalListas(String lId, String lTipoId) {
        try {


            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = sqlAnual;
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {

                sesion.con.close();
                return false;
            }
            if (lTipoId.equals("contribuyentes")) {
                tmpListaId.add(rs.getString("cedula"));
                tmpListaEstatus.add("impuestoanual");
            } else {
                if (lTipoId.equals("comercios")) {
                    tmpListaId.add(rs.getString("idcomercio"));
                    tmpListaEstatus.add("impuestoanual");
                } else {
                    if (lTipoId.equals("remolques")) {
                        tmpListaId.add(rs.getString("idremolque"));
                        tmpListaEstatus.add("remolqueanual");
                    } else {
                        if (lTipoId.equals("vehiculos")) {
                            tmpListaId.add(rs.getString("idvehiculo"));
                            tmpListaEstatus.add("vehiculoanual");
                        }
                    }
                }
            }

            tmpListaTipoId.add(lTipoId);
            tmpListaIdRegimen.add(rs.getString("idregimen"));
            tmpListaRegimen.add(rs.getString("regimen"));
            tmpListaMorosidad.add(rs.getDouble("valor"));
            tmpMoroso.add("no");

            tmpNumeroRegistrosLista++;
            while (rs.next()) {
                if (lTipoId.equals("contribuyentes")) {
                    tmpListaId.add(rs.getString("cedula"));
                    tmpListaEstatus.add("impuestoanual");
                } else {
                    if (lTipoId.equals("comercios")) {
                        tmpListaId.add(rs.getString("idcomercio"));
                        tmpListaEstatus.add("impuestoanual");
                    } else {
                        if (lTipoId.equals("remolques")) {
                            tmpListaId.add(rs.getString("idremolque"));
                            tmpListaEstatus.add("remolqueanual");
                        } else {
                            if (lTipoId.equals("vehiculos")) {
                                tmpListaId.add(rs.getString("idvehiculo"));
                                tmpListaEstatus.add("vehiculoanual");
                            }
                        }
                    }
                }

                tmpListaTipoId.add(lTipoId);
                tmpListaIdRegimen.add(rs.getString("idregimen"));
                tmpListaRegimen.add(rs.getString("regimen"));
                tmpListaMorosidad.add(rs.getDouble("valor"));
                tmpMoroso.add("no");

                tmpNumeroRegistrosLista++;
            }
            sesion.con.close();
            BuscarMorosidad();
            CargarListadoMorosidadAnual();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarTemporalListasContribuyentes()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);

        }
        return false;
    }

    private void BuscarMorosidad() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return;
            }
            String sqlQuery = "";
            PreparedStatement psquery;

            if (getTmpNumeroRegistrosLista() != - 1) {

                for (int i = 0; i <= getTmpNumeroRegistrosLista(); i++) {


                    String sql2 = "select pagosanuales.* from pagosanuales "
                            + " where pagosanuales.idmunicipio ='" + this.IdMunicipio + "'"
                            + " and pagosanuales.activo='si'"
                            + " and pagosanuales.pagado='no'"
                            + " and pagosanuales.id = '" + getTmpListaId().get(i) + "'"
                            + " and pagosanuales.tipoid='" + getTmpListaTipoId().get(i) + "'"
                            + " and pagosanuales.idregimen='" + getTmpListaIdRegimen().get(i) + "'";


                    psquery = sesion.con.prepareStatement(sql2);
                    ResultSet rs = psquery.executeQuery();
                    rs.next();
                    int x = rs.getRow();
                    if (x != 0) {
                        //encontro que no se habia pagado
                        tmpMoroso.set(i, "si");
                    } else {
                        tmpMoroso.set(i, "no");
                    }

                }//for
                sesion.con.close();
            }//if
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "BuscarMorosidad()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);

        }
    }

    public void CargarListadoMorosidadAnual() {
        try {
            if (getTmpNumeroRegistrosLista() != - 1) {

                for (int i = 0; i <= getTmpNumeroRegistrosLista(); i++) {
                    if (tmpMoroso.get(i).equals("si")) {
                        // ListaId.add(tmpListaId.get(i));
                        //  ListaTipoId.add(tmpListaTipoId.get(i));
                        ListaIdRegimen.add(tmpListaIdRegimen.get(i));
                        ListaRegimen.add(tmpListaRegimen.get(i));
                        ListaMorosidad.add(tmpListaMorosidad.get(i));
                        ListaEstatus.add("morosidadanual");
                        NumeroRegistrosLista++;
                        this.TotalMorosidad += tmpListaMorosidad.get(i);
                    }


                }
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "CargarListadoMorosidadMensualAnualActualizado()\nError " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);

        }
    }
}// class

